home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
4cmp22s.zip
/
DOSGO.4TH
< prev
next >
Wrap
Text File
|
1994-10-30
|
1KB
|
31 lines
\ HEADER FOR .COM FILES 06/21/94
\ COPYRIGHT 1985, 1991 (C) BY THOMAS ALMY. ALL RIGHTS RESERVED
\ Permission is granted to registered users of ForthCMP to
\ sell or distrubute computer programs incorporating the compiled
\ contents of this file.
\ MS is a trademark of Microsoft Corporation.
\ This file is for standard MS-DOS operation, with or without a
\ separate stack segment.
10 ASM HEX FWD, ( skip the variables )
VARIABLE DP ( start free ram = HERE, set by END command )
VARIABLE S0 ( top of stack )
VARIABLE R0 ( top of return stack )
VARIABLE BASE ( radix ) 0A BASE ! ( decimal )
THEN,
SEPSSEG? [IF] AX CS <SEG pssize # AX ADD AX SS >SEG [THEN]
FIND PSIZE [IF] DROP ( PSIZE is constant size of program seg)
PSIZE 0 10. D+ 10 SM/REM NIP
DUP 10 * rssize - DUP # SP MOV ( set param stack )
CELL- # S0 [] MOV ( set S0 )
DUP 10 * # BP MOV BP R0 [] MOV ( set return stack, R0 )
4A # AH MOV SEPSSEG? [IF] pssize + [THEN] # BX MOV 21 INT [THEN]
FIND PSIZE [IF] DROP [ELSE]
rssize NEGATE DUP # SP MOV ( set param stack )
CELL- # S0 [] MOV ( set S0 )
0 # BP MOV BP R0 [] MOV ( set return stack, R0 ) [THEN]
0 0 IN/OUT NEED MAIN CLD CALL' MAIN ( call main program )
CODE bye 4C00 # AX MOV 21 INT END-CODE
FORTH 0A = [IF] DECIMAL [THEN]